import Vue from "vue"
import Vuex from "vuex"
// 导入模块
import common from "./modules/common"
Vue.use(Vuex)

export default new Vuex.Store({
    // 状态，用于初始化仓库中的数据，在这里声明项目中全局使用的数据
    state: {
        // 这里存储初始值
        count: 0,
        dataList:[]   //首页搜索框记录渲染
    },
    // 获取并修饰数据
    getters: {
        parseCount(state) {
            return "经过本次计算，最新结果是" + state.count
        },
    },
    // 同步修改数据
    mutations: {
        // 修改count
        // 在同步区域可以写异步代码，但是会影响开发者在调试工具中的观察，容易做出误判，因此不建议在这里写异步代码，异步写在actions中
        setCount(state, payload) {
            state.count += payload
        },
        detailsId(state, payload){
            state.dataList = payload
            // console.log( state.dataList )
        }

    },
    // 异步修改数据
    // 必须存在与之对应的同步修改方法
    actions: {
        setCountAsync(context, payload) {
            // action中的方法自己不干活，调用同步方法干活
            // context = this.$store
            setTimeout(() => {
                context.commit("setCount", payload)
            }, 2000)
        },
    },
    // 模块化
    modules: {
        // 模块名: 模块导入变量
        common, // common: common
    },
})
